expect: { '': {} }
});
+var callUfpList = rpc.declare({
+ object: 'fingerprint',
+ method: 'fingerprint',
+});
+
+var checkUfpInstalled = rpc.declare({
+ object: 'file',
+ method: 'stat',
+ params: [ 'path' ]
+});
+
return baseclass.extend({
title: '',
load: function() {
return Promise.all([
- callLuciDHCPLeases(),
- network.getHostHints(),
- L.resolveDefault(uci.load('dhcp'))
- ]);
+ checkUfpInstalled('/usr/sbin/ufpd')
+ ]).then(data => {
+ var promises = [
+ callLuciDHCPLeases(),
+ network.getHostHints(),
+ data[0].type === 'file' ? callUfpList() : null,
+ L.resolveDefault(uci.load('dhcp'))
+ ];
+
+ return Promise.all(promises);
+ });
},
handleCreateStaticLease: function(lease, ev) {
leases6 = Array.isArray(data[0].dhcp6_leases) ? data[0].dhcp6_leases : [],
machints = data[1].getMACHints(false),
hosts = uci.sections('dhcp', 'host'),
+ macaddr = data[2],
isReadonlyView = !L.hasViewPermission();
for (var i = 0; i < hosts.length; i++) {
cbi_update_table(table, leases.map(L.bind(function(lease) {
var exp, rows;
+ var vendor;
if (lease.expires === false)
exp = E('em', _('unlimited'));
else if (lease.hostname)
host = lease.hostname;
+ if (macaddr) {
+ var lowermac = lease.macaddr.toLowerCase();
+ vendor = macaddr[lowermac].vendor ? macaddr[lowermac].vendor : null;
+ }
+
rows = [
host || '-',
lease.ipaddr,
- lease.macaddr,
+ vendor ? lease.macaddr + ` (${vendor})` : lease.macaddr,
exp
];